docker跟containerd的区别及命令对比 | 您所在的位置:网站首页 › docker 镜像 容器 区别 › docker跟containerd的区别及命令对比 |
一、docker 和 containerd的调用链对比
image.png
1.docker由docker-client、dockerd、containerd、docker-shim、runc组成,所以containerd是docker的基础组件之一 2.从k8s的角度看,可以选择 containerd 或 docker 作为运行时组件:由于 containerd 调用链更短,组件更少,更稳定,占用节点资源更少。所以k8s后来的版本开始默认使用 containerd 。 3.containerd 相比于docker , 多了 namespace 概念,每个 image 和 container 都会在各自的namespace下可见。 4.docker 作为 k8s 容器运行时,调用关系为:kubelet --> dockershim (在 kubelet 进程中) --> dockerd --> containerd 5.containerd 作为 k8s 容器运行时,调用关系为:kubelet --> cri plugin(在 containerd 进程中) --> containerd 二、命令区分1.ctr 是 containerd 的一个客户端工具。 2.crictl 是 CRI 兼容的容器运行时命令行接口,可以使用它来检查和调试 k8s 节点上的容器运行时和应用程序。 3.ctr -v 输出的是 containerd 的版本,crictl -v 输出的是当前 k8s 的版本,从结果显而易见你可以认为 crictl 是用于 k8s 的。 三、常用命令及对比 3.1容器相关 命令 Docker crictl(k8s)推荐 ctr(Containerd) 查看容器列表 docker ps crictl ps ctr -n k8s.io c ls 查看容器详情 docker inspect crictl inspect ctr -n k8s.io c info 查看容器日志 docker logs crictl logs 无 容器内执行命令 docker exec crictl exec 无 挂载容器 docker attach crictl attach 无 显示容器资源使用情况 docker stats crictl stats 无 创建容器 docker create crictl create ctr -n k8s.io c create 启动容器 docker start crictl start ctr -n k8s.io run 停止容器 docker stop crictl stop 无 删除容器 docker rm crictl rm ctr -n k8s.io c del 3.2 pod相关 命令 Docker crictl(k8s) ctr(Containerd) 查看Pod列表 无 crictl pods 无 查看Pod详情 无 crictl inspectp 无 启动Pod 无 crictl runp 无 停止Pod 无 crictl stopp 无 3.3 镜像相关 命令 Docker crictl(k8s) ctr(Containerd) 查看镜像列表 docker images crictl images ctr -n k8s.io i ls 查看镜像详情 docker inspect crictl inspecti 无 拉取镜像 docker pull crictl pull ctr -n k8s.io i pull 推送镜像 docker push 无 ctr -n k8s.io i push 删除镜像 docker rmi crictl rmi ctr -n k8s.io i rm 导入镜像 docker load 无 ctr image import 导出镜像 docker save 无 ctr image export 镜像打tag docker tag 无 ctr image tag 例如: ctr -n=k8s.io image tag docker.io/library/nginx:1.20.1 docker.io/library/nginx:1.20.2 |
CopyRight 2018-2019 实验室设备网 版权所有 |